package com.quanyan.place.biz.redis;

import com.quanyan.place.entity.TbCity;
import com.quanyan.place.entity.TbCityRegion;
import com.quanyan.place.entity.TbCommonParameter;
import com.quanyan.place.entity.TbDistrict;
import com.quanyan.place.entity.TbProvince;
import com.quanyan.place.entity.apiresp.RespCategory;
import com.quanyan.place.entity.apiresp.RespCityInfo;
import com.quanyan.place.entity.base.apiresp.RespDistrict;

import java.util.HashMap;
import java.util.List;

/**
 * Created by dongsheng.lin on 2017/4/28.
 */
public interface ConfigCacheDao {

    /**
     * 从redis中取出所有配置项
     * @return
     */
    List<TbCommonParameter> getCommonParameterFromCache();

    /**
     * 把配置项放进redis
     * @param tbCommonParameters
     */
    void setCommonParameterToCache(List<TbCommonParameter> tbCommonParameters);

    /**
     * 从redis中取出运动类目
     * @return
     */
    List<RespCategory> getSysCategroyInfoFromCache();

    /**
     *  把系统运动类目放进redis
     *
     */
    void setSysCategroyInfoToCache(List<RespCategory> respCategories);

    /**
     * 从redis中取出省份列表
     * @return
     */
    List<TbProvince> getProvincesFromCache();

    /**
     * 把省份列表放进redis
     */
    void setProvincesToCache(List<TbProvince> tbProvinces);

    /**
     * 把城市列表放入redis
     */
    void setCitiesToCache(List<TbCity> tbCityList);

    /**
     * 从redis中取出城市对象列表
     * @return
     */
    List<TbCity> getCitiesFromCache();

    /**
     * 把地区列表放入redis
     */
    void setDistrictsToCache(List<TbDistrict> tbDistricts);

    /**
     * 从redis中取出地区列表
     * @return
     */
    List<TbDistrict> getDistrictsFromCache();

    /**
     * 从redis中取出地区列表
     * @param cityId
     * @return
     */
    List<RespDistrict> getDistrictsByCityIdFromCache(int cityId);

    /**
     * 把城市区域列表放入redis
     */
    void setDistrictsByCityIdToCache(RespCityInfo respCityInfo);

    /**
     * 把字典信息放入redis
     */
    void setDictsByTagGroupToCache(String tagGroup, HashMap<String,String> dictMap);

    /**
     * 通过 tag_group从redis中取出字典信息
     * @param tagGroup
     * @return
     */
    HashMap<String,String> getDictsByTagGroupToCache(String tagGroup);

    /**
     * 从redis中取出自定义城市区域
     * @return
     */
    List<TbCityRegion> getRegionByCityIdFromCache();

    /**
     * 把自定义城市区域放入redis
     */
    void setCityRegionsToCache(List<TbCityRegion> cityRegionList);
}
